颠覆认知的JavaScript

您所在的位置:网站首页 try catch throws 颠覆认知的JavaScript

颠覆认知的JavaScript

2023-03-13 19:09| 来源: 网络整理| 查看: 265

错误的类型SyntaxErrorReferenceError 应用错误RangeError 范围错误URIError URI错误EvalError eval 函数执行错误Error 构造函数try catch finally throwES5with 改变作用域严格模式下this 指向undefined">严格模式下参数不能重复严格模式下的对象严格模式下的eval命名空间

错误的类型 SyntaxError(语法错误)ReferenceError (引用错误)TypeError(类型错误)RangeError(范围错误)URIError()Eval Error() SyntaxError语法错误/* 语法错误 */var 1 = 1;var 1ab = 1;var a = 1 = 2; ReferenceError 应用错误test();console.log(a); RangeError 范围错误

数组长队赋值为负数

var arr =[1, 2, 3];arr.length=-1;

对象方法参数 ,超出可行范围

var num = new Number(66.66);console.log(num.toFixed(-1))

TypeError 类型错误用不存在的方法

123()var obj ={say:1}obj.say();

实例化原始值

var a = new 1;

URIError URI错误 URI: Uniform Resource Identifier //统一资源标识符URL Uniform Resource Locator 统一资源定位符URN Uniform Resource Nam 统一资源名称var url = 'http://www.baidu.com?name=敲代码';var newURL = encodeURI(url);console.log(newURL);//"http://www.baidu.com?name=%E6%95%B2%E4%BB%A3%E7%A0%81" var str = decodeURI('%sdasd') EvalError eval 函数执行错误eval('var a = 1;console.log(a)')

Error 构造函数var err = new Error('我是错误信息');console.log(err);var err1 = new SyntaxError('我是语法错误信息')console.log(err1);

try catch finally throwtry{ console.log('正常执行1'); console.log(a); console.log('正常执行2');}catch (e){ console.log(e);}

try 代码内部出线错误。不影响finally 里面和外部的代码执行try{ console.log('正常执行1');console.log(a);console.log('正常执行2');}catch (e){console.log('正常执行3') console.log(e);cosnole.log(e.name);console.log(e.message);}finally{ console.log('正常执行4');} ES5 严格模式正常模式 ```javascript ‘use strict’//严格模式,字符串。为什么是字符串不是函数。因为字符串在低版本浏览器中不报错。 //历史 /** 严格模式ES5严格模式97 1.098 2.099 3.0 JS通行标准。07 4.0草案太激进 导致许多厂商反对 mozilla 支持 因为08 4.0终止 容易改善的 3.1 激进的部分为Harmony3.1改成了ES509 ES5 正式发布。 Harmony中比较不激进的 Next激进的JS.Next.Next1113 ES6 = js.next js.next.next 变成 ES7的草案15 ES6 正式发布 焦作ES 2015. */ 1. 写在全局1. 写在函数里```javascriptfunction test(){ 'use strict';}

with 改变作用域 with、callee、caller 在严格模式下都会报语法错误、 ```javascript

var a = 1; var obj = { ‘a’:2 } function test() { ‘use strict’ var a = 3; //with 可以改变作用域链 obj with (window) { console.log(a);//a=1; } with (obj) { console.log(a);//a=2 } with (test) { console.log(a)//a=3 } } test();

![image.png](https://cdn.nlark.com/yuque/0/2021/png/12831495/1617004149377-30ef858c-3f08-4392-abfb-b20bc151e3fd.png#align=left&display=inline&height=112&margin=%5Bobject%20Object%5D&name=image.png&originHeight=112&originWidth=276&size=2040&status=done&style=none&width=276)## 严格模式下变量要声明。```javascriptfunction test(){ 'use strict' a = 1;}

严格模式下this 指向undefinedfunction test(){ 'use strict' console.log(this);}

严格模式下参数不能重复function test(a,a){ console.log(a);}test(1,1)function test2(a,a){ 'use strict'//预编译的时候就报错。 console.log(a);}test2();

严格模式下的对象'use strict'var obj = { a:1, b:2};console.log(obj.a);

严格模式下的eval'use strict'eval('var a =1;console.log(a)')console.log(a);

命名空间window.onload = function(){ init();}function init(){};var initSlider = (function(){ var a = 1;})();var initTop = (function(){ var a = 2;})();


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3